<?php

/**
 * \file
 * \since 26/09/2008
 * \author Matthieu OVIEDO <matthieu.oviedo@gmail.com>
 * Classe `infixOperator`.
 */
 
namespace pilar\Entities\expressions /* \cond */ ; /* \endcond */
{

/**
 * Opérateur SQL formel infixé à 2 entrées.
 *
 * \since 26/09/2008
 * \author Matthieu OVIEDO <matthieu.oviedo@gmail.com>
 */
class infixOperator extends naryFunction {

protected function loadDefaultParams() {
 parent::loadDefaultParams();
 
 $this->params->define(array(
  'operator' => '', // Code SQL de l'opérateur considéré.
  'left' => '',     // Opérande de gauche.
  'right' => ''     // Opérande de droite.
 ));
}


protected function initialize() {
 parent::initialize();
 
 // Passage des 2 opérandes comme 2 entrées de fonction pour pouvoir bénéficier
 // des fonctionnalités associées.
  $this->params->set(array(
   'inputs' => array(
    $this->params->left,
    $this->params->right
   )
  ));
}


public function sqlCode() {
 return (
           '( '
         . $this->params->left->sqlCode()
         . ' '.$this->params->operator.' '
         . $this->params->right->sqlCode()
         . ' )'
        );
}


} // Class.

} // Namespace.

?>
